package cn.b.sky.mes.mm.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import cn.b.sky.mes.mm.model.PullType;
import cn.b.sky.mes.mm.model.condition.PullTypeCondition;

public interface PullTypeDao {

  /**
   * 
   * <strong>Title : getPullTypeListByCondition<br></strong>
   * <strong>Description : </strong>获取物料拉动类型列表<br> 
   * <strong>Create on : 2016年9月8日 下午1:53:39<br></strong>
   * <p>
   * @param pullingTypeCondition
   * @return
   * List<PullType>
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PullType> getPullTypeListByCondition(PullTypeCondition pullingTypeCondition);

  /**
   * 
   * <strong>Title : getPullTypeCountByCondition<br></strong>
   * <strong>Description : </strong>获取物料拉动类型数量<br> 
   * <strong>Create on : 2016年9月8日 下午1:54:01<br></strong>
   * <p>
   * @param pullingTypeCondition
   * @return
   * long
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getPullTypeCountByCondition(PullTypeCondition pullingTypeCondition);

  /**
   * 
   * <strong>Title : getPullTypeByCode<br></strong>
   * <strong>Description : </strong>查询物料拉动类型<br> 
   * <strong>Create on : 2016年9月8日 下午1:57:20<br></strong>
   * <p>
   * @param siteCode
   * @param pullTypeCode
   * @return
   * PullType
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  PullType getPullTypeByCode(@Param("siteCode") String siteCode, @Param("pullTypeCode") String pullTypeCode);

  /**
   * 
   * <strong>Title : insertPullType<br></strong>
   * <strong>Description : </strong>新增物料拉动类型<br> 
   * <strong>Create on : 2016年9月8日 下午1:58:41<br></strong>
   * <p>
   * @param pullType
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertPullType(PullType pullType);

  /**
   * 
   * <strong>Title : updatePullType<br></strong>
   * <strong>Description : </strong>更新物料拉动类型<br> 
   * <strong>Create on : 2016年9月8日 下午1:59:19<br></strong>
   * <p>
   * @param pullType
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updatePullType(PullType pullType);

  /**
   * 
   * <strong>Title : deletePullType<br></strong>
   * <strong>Description : </strong>删除物料拉动类型<br> 
   * <strong>Create on : 2016年9月8日 下午2:02:24<br></strong>
   * <p>
   * @param siteCode
   * @param pullTypeCode
   * void
   * @throws 
   * @author dapeng.li<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void deletePullType(@Param("siteCode") String siteCode, @Param("pullTypeCode") String pullTypeCode);

}
